package org.dandsoft.blackbox.utils.table;

import org.dandsoft.blackbox.utils.list.ListElement;

/**
 * @author Vilyuzhanin Denis (Fin)
 */
public class Column {
    private long columnKey;
    private Object data;
    private ListElement<Column> columnList = new ListElement<Column>(this);
    private Cell firstCell = new Cell();

    public Column() {
    }

    public Column(long columnKey) {
        this.columnKey = columnKey;
    }

    /**
     * Добавить ячейку в колонку
     * @param cell Ячейка которую необходимо добавить в колонку. Она подсоединяется к колонке.
     */
    public void addCell(Cell cell) {
        cell.connectToColumn(firstCell);
    }

    public void removeCell(Cell cell) {
        if (columnKey == cell.getColumnKey()) {
            cell.disconnect();
        }
    }

    public long getColumnKey() {
        return columnKey;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public ListElement<Column> getColumnList() {
        return columnList;
    }

    public void setColumnList(ListElement<Column> columnList) {
        this.columnList = columnList;
    }

    public Cell getFirstCell() {
        return firstCell;
    }

    public void setFirstCell(Cell firstCell) {
        this.firstCell = firstCell;
    }

    public void setColumnKey(long columnKey) {
        this.columnKey = columnKey;
    }
}
